// --------------------------------------------------------------------------------------------------------------------
// <copyright file="WorkSchedulerMetadataAttribute.cs" company="AzureContrib (Open source library http://azurecontrib.codeplex.com)">
//   Microsoft Public License (Ms-PL)
// </copyright>
// <summary>
//   Metadata for the <see cref="IWorkSchedulerMetadata" />. <seealso cref="IWorkScheduler" />. <seealso cref="IWorkSchedulerMetadata" />
// </summary>
// --------------------------------------------------------------------------------------------------------------------

using System;
using System.ComponentModel.Composition;

namespace AzureContrib.WindowsAzure.WorkServices
{
	/// <summary>
	/// Metadata for the <see cref="IWorkSchedulerMetadata"/>. <seealso cref="IWorkScheduler"/>. <seealso cref="IWorkSchedulerMetadata"/>
	/// </summary>
	[MetadataAttribute, AttributeUsage(AttributeTargets.Class)]
	public sealed class WorkSchedulerMetadataAttribute : ExportAttribute, IWorkSchedulerMetadata
	{
		/// <summary>
		/// Initializes a new instance of the <see cref="WorkSchedulerMetadataAttribute"/> class. 
		/// </summary>
		/// <param name="name">The name of this scheduler.</param>
		/// <param name="description">The description for this scheduler.</param>
		public WorkSchedulerMetadataAttribute(string name, string description)
			: base(typeof(IWorkScheduler))
		{
			Name = name;
			Description = description;
		}

		/// <summary>
		/// Gets the <see cref="IWorkSchedulerMetadata.Name"/>.
		/// </summary>
		public string Name 
		{
			get;
			private set;
		}

		/// <summary>
		/// Gets the <see cref="IWorkSchedulerMetadata.Description"/>.
		/// </summary>
		public string Description
		{
			get;
			private set;
		}
	}
}